package com.iteaj.iot.taos;

import com.iteaj.iot.Protocol;
import com.iteaj.iot.tools.annotation.IotTag;

/**
 * 使用于在插入数据时自动创建数据表的情况
 * e.g: INSERT INTO d21001 USING meters TAGS ('Beijing.Chaoyang', 2)
 * @see STable#tagsResolver()
 */
public interface TagsResolver {

    /**
     * 解析出tags的值
     * @param entity = {@link TaosHandle#handle(Protocol)}返回值
     * @param tagName = {@link IotTag#value()}
     * @return 如果返回null则此tag将不加入插入语句，taos数据库将默认设置此tag值为null
     */
    Object resolve(Object entity, String tagName);
}
